//OOP  面向对象　原型链　对象与对象　　继承链　　家谱
// let obj = {} // NULL
// console.log(obj)

// let elem = document.querySelector('h1')
// console.dir(elem)

//''.slice(0);

// new String(); let f= '';
// let a = {} ;

// let a = new Object()
// console.log(a)
// jquery window.ie8  ie7
// jquery  query

// bootstrap jquery

// const el = document.querySelector(`body>h1[id^='a']`)
// el.innerHTML = 'inertia'
// console.log(el)
// const a = new Object()
// const a = {}
// Object.prototype.name = 'cc'
// a.__proto__.name = 'yahoo'
// console.log(a.name)
// let a = []
// function Show() {}
// Show()
// null
// console.log(a instanceof Object)

// Show.name = 'is function'

// console.dir(Show)

// let h1 = document.querySelector('h1')
// h1.__proto__.show = () => alert('is show method')
// h1.addEventListener('click', h1.show)

// let h2 = document.querySelector('h2')
// h2.addEventListener('click', h2.show)
// console.log(h2.style)  =

//递归　　函数对自身的不断调用
//3 3x2x1
function hd(n) {
  if (n == 1) return 1
  return n * hd(n - 1)
}
console.log(hd(3))

//3 x 2 x 1
//2 x 1
//1
